#!/bin/bash
# _    _    _    _                                  _            _   
#| |_ |_| _| | _| | ___  ___  ___  ___  ___  ___   |_| ___  ___ | |_ 
#|   || || . || . || -_||   ||___|| . ||  _|| . |  | || -_||  _||  _|
#|_|_||_||___||___||___||_|_|     |  _||_|  |___| _| ||___||___||_|  
#                                 |_|            |___|               
#Installiert eine Grundkonfiguration eines Hidden-Services-Servers
#sichert optional auch die sshd-config
#Webserver Nginx optional mit php + php-fpm
#
echo "
 _    _    _    _                                  _            _   
| |_ |_| _| | _| | ___  ___  ___  ___  ___  ___   |_| ___  ___ | |_ 
|   || || . || . || -_||   ||___|| . ||  _|| . |  | || -_||  _||  _|
|_|_||_||___||___||___||_|_|     |  _||_|  |___| _| ||___||___||_|  
                                 |_|            |___|
"


echo -e '\033[1mPasswörter ändern:\033[0m'
read -p " Willst Du fortfahren?  [Ja|Nein]:" answer

echo -e '\033[1mBenutzer-Passwort ändern\033[0m'
    sudo passwd
echo -e '\033[1mRoot-Passwort ändern\033[0m'
    sudo passwd root
echo -e '\033[1mPaketlisten neu einlesen\033[0m'
    sudo apt update
echo -e '\033[7mSSH Konfigurieren:\033[0m.'
read -p  "Willst Du fortfahren? [Ja|Nein]" answer

case "$answer" in
        Ja|ja|J|j|"") 
echo -e "\033[1;36m Diese Daten sollen kopiert werden \033[0m"
echo -e "\033[1;36m ================================= \033[0m"
echo "SSH wird konfiguriert"
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_default
sudo sed -i -e '
s/Port 22/Port 5445/g' -e '
s/#MaxAuthTries 6/MaxAuthTries 3/g' -e '
s/PermitRootLogin yes/PermitRootLogin no/g' -e '
s/#PermitRootLogin no/PermitRootLogin no/g' -e '
s/#X11Forwarding no/X11Forwarding no/g' -e '
s/X11Forwarding yes/X11Forwarding no/g' -e '
s/#ClientAliveInterval 0/ClientAliveInterval 600/g' -e '
s/#ClientAliveCountMax 3/ClientAliveCountMax 3/g' -e '
s/PermitEmptyPasswords yes/PermitEmptyPasswords no/g' -e '
s/#PermitEmptyPasswords no/PermitEmptyPasswords no/g' -e '
s/#PasswordAuthentication no/PasswordAuthentication no/g' /etc/ssh/sshd_config
echo -e '\033[1mSSH wurde erfolgreich konfiguriert\033[0m'            ;;
        Nein|nein|N|n) echo "Abbruch."
                   exit 1
            ;;
            *) echo "Unbekannter Parameter" 
            ;;
esac

read -p "Installiert Nginx und Tor Server: Willst Du fortfahren? Ja | Nein:" answer

case "$answer" in
        Ja|ja|J|j|"") echo "Nginx und Tor Server werden installiert"
sudo apt install nginx && sudo apt install tor
echo "Nginx und Tor Server wurden erfolgreich installiert"
            ;;
        Nein|nein|N|n) echo "Abbruch."
                   exit 1
            ;;
            *) echo "Unbekannter Parameter" 
            ;;
esac

read -p "Nginx wird konfiguriert: Willst Du fortfahren? Ja | Nein:" answer

case "$answer" in
        Ja|ja|J|j|"") echo "Nginx wird konfiguriert"
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf_default
sudo sed -i -e '
s/#server_tokens off/server_tokens off/g' /etc/nginx/nginx.conf
echo "Nginx wurde erfolgreich konfiguriert"
            ;;
        Nein|nein|N|n) echo "Abbruch."
                   exit 1
            ;;
            *) echo "Unbekannter Parameter" 
            ;;
esac
echo -e '\033[7mTor wird konfiguriert:\033[0m.'

read -p "Willst Du fortfahren? Ja | Nein:" answer

case "$answer" in
        Ja|ja|J|j|"") 
echo "Tor wird konfiguriert"

sudo sed -i -e '
s/#HiddenServiceDir/HiddenServiceDir/g' -e '
s/#HiddenServicePort/HiddenServicePort/g' /etc/tor/torrc
sudo service tor restart
echo "Tor wurde erfolgreich konfiguriert und startet nun neu"
sleep 10
echo "Deinen Onion-Url lautet:"
sudo cat /var/lib/tor/hidden_service/hostname
            ;;
        Nein|nein|N|n) echo "Abbruch."
                   exit 1
            ;;
            *) echo "Unbekannter Parameter" 
            ;;
esac
